package com.briup.day03;

/**
 * @author 谭梦寻
 * @version 1.1
 * 逻辑运算符
 * 移位运算
 * 位运算符
 */
public class Test04 {
    public static void main(String[] args) {
//        逻辑运算符 布尔值 布尔表达式 &&短路且 ||短路或 ^异或（相同为假 不同为真）
        System.out.println((1>0) && true);
        /*
        >> 向右进行算术移位
        << 向左进行算术移位
        >>> 向右进行逻辑移位 （不带符号的右移）
         */
        System.out.println(-3>>>1);
        System.out.println(-3>>1);
        System.out.println(3<<1);
        System.out.println("移位的高级："); // 128 2
        System.out.println(5>>32); //5 >> (32-32)
        System.out.println(5>>33); // 5 >> (33-32) -> 2
//        System.out.println(3<<<1);//报错 没有算数左移

//        位运算符 &与 |或 ^异或 ~取反
//        & 补码形式 按位相与 全1为1
        System.out.println(1&1);
        System.out.println(~1);// 00...00 0001 -> 11...11 1110(补) ->-2
        System.out.println(-1 ^ -2);//1
//        1111 1111
//        1111 1110
//        0000 0001
    }
}
